home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Aminet 52
/
Aminet 52 (2002)(GTI - Schatztruhe)[!][Dec 2002].iso
/
Aminet
/
dev
/
basic
/
Codewandler.lha
/
Codewandler.ASC
next >
Wrap
Text File
|
2002-03-03
|
13KB
|
491 lines
'
' CodeWandler by J. F. from SATANIC
' für Xplodercodes (Sony PSX) (Playstationbesitzer wissen Bescheid)
' english
' only codes with coding 5 or 6 are available
' coding 6 codes are distributed by FCD (Future Console Design) itself
' no warranty for any mistakes; using this of your own risk
' These was written for AMOS and AMOSPro (AMIGA)
' for use with PC (QBasic) little changes needed
' sorry for my bad english
' this code is mailware; if you use it, send me a mail:
' shuddemel(at)aol.com
'
' deutsch
' nur Codes mit der Codierung 5 oder 6 sind möglich umzuwandeln
' Codes mit der Codierung 6 werden nur von FCD selbst herausgebracht
' Ich gebe keine Garantie für irgendwelche Fehler;
' Benutzung auf eigenes Risiko
' Geschrieben habe ich das Programm in AMOS und AMOSPro (AMIGA)
' Um es mit dem PC (QBasic) zu nutzen sind kleine Änderungen nötig
' Dieses Programm ist Mailware; falls jemand es benutzt, mailt mir:
' shuddemel(at)aol.com
'
Screen Open 0,640,250,4,Hires
Dim CD(16)
If Not Exist("Codes")
Mkdir "Codes"
End If
DC$="Codes/"
NOCHMAL:
Cls
Locate 0,4 : Input "Verschlüsselter Code : $";CODE$
Repeat : Until Not Key State(68)
A$="0123456789ABCDEF"
If CODE$<>""
L=Len(CODE$)
If L=12
For X=1 To 12
R$=Mid$(CODE$,X,1)
V=0
R$=Upper$(R$)
For Y=1 To 16
If R$=Mid$(A$,Y,1)
Exit
Else
Inc V
End If
If V=16
Locate 0,5 : Print "Ungültiger Wert an Position ";X;"."
Goto N
End If
Next Y
R$=Upper$(R$)
Gosub VL
CD(X)=R
If X=1 : CD(X)=R : End If
If X=2
If CD(X)=5
COD=1
Else
If CD(X)=7
COD=2
Else
COD=0
End If
End If
CD(X)=0
End If
If X=3
If COD=1
Restore C3
For CC=1 To 16
Read E3
If R=CC-1
CD(X)=E3
Exit
End If
Next CC
Else
If COD=2
Restore S3
Else
E3=5
If CD(X)=6 : E3=6 : End If
CD(X)=0
End If
End If
End If
If X=4
If COD=0
Restore V4
Else
If COD=2
Restore S4
Else
Restore C4
End If
End If
For CC=1 To 16
Read E4
If R=CC-1
CD(X)=E4
If COD=1
If CC>9
Inc CD(X-1)
If CD(X-1)=16
CD(X-1)=0
End If
End If
Else
If COD=2
Else
If CC>5 and E3=6
CD(X-1)=1
End If
End If
End If
Exit
End If
Next CC
End If
If X=5
If COD=0
Restore V5
Else
If COD=2
Restore S5
Else
Restore C5
End If
End If
For CC=1 To 16
Read E5
If R=CC-1
CD(X)=E5
Exit
End If
Next CC
End If
If X=6
If COD=0
Restore V6
EH=6
Else
If COD=2
Restore S6
Else
Restore C6
EH=14
End If
End If
For CC=1 To 16
Read E6
If R=CC-1
CD(X)=E6
If COD=0
If CC<EH
Dec CD(X-1)
If CD(X-1)=-1
CD(X-1)=15
End If
End If
Else
If COD=2
Else
If CC>EH
Inc CD(X-1)
If CD(X-1)=16
CD(X-1)=0
End If
End If
End If
End If
Exit
End If
Next CC
End If
If X=7
If COD=0
Restore V7
Else
If COD=2
Restore S7
Else
Restore C7
End If
End If
For CC=1 To 16
Read E7
If R=CC-1
CD(X)=E7
Exit
End If
Next CC
End If
If X=8
If COD=0
Restore V8
EH=6
Else
If COD=2
Restore S8
Else
Restore C8
EH=15
End If
End If
For CC=1 To 16
Read E8
If R=CC-1
CD(X)=E8
If COD=0
If CC<EH
Dec CD(X-1)
If CD(X-1)=-1
CD(X-1)=15
End If
End If
Else
If COD=2
Else
If CC>EH
Inc CD(X-1)
If CD(X-1)=16
CD(X-1)=0
End If
End If
End If
End If
Exit
End If
Next CC
End If
If X=9
If COD=0
Restore V9
Else
If COD=2
Restore S9
Else
Restore C9
End If
End If
For CC=1 To 16
Read E9
If R=CC-1
CD(X)=E9
Exit
End If
Next CC
End If
If X=10
If COD=0
Restore V10
EH=6
Else
If COD=2
Restore S10
Else
Restore C10
EH=14
End If
End If
For CC=1 To 16
Read E10
If R=CC-1
CD(X)=E10
If COD=0
If CC<EH
Dec CD(X-1)
If CD(X-1)=-1
CD(X-1)=15
End If
End If
Else
If COD=2
Else
If CC>EH
Inc CD(X-1)
If CD(X-1)=16
CD(X-1)=0
End If
End If
End If
End If
Exit
End If
Next CC
End If
If X=11
If COD=0
Restore V11
Else
If COD=2
Restore S11
Else
Restore C11
End If
End If
For CC=1 To 16
Read E11
If R=CC-1
CD(X)=E11
Exit
End If
Next CC
End If
If X=12
If COD=0
Restore V12
EH=6
Else
If COD=2
Restore S12
Else
Restore C12
EH=13
End If
End If
For CC=1 To 16
Read E12
If R=CC-1
CD(X)=E12
If COD=0
If CC<EH
Dec CD(X-1)
If CD(X-1)=-1
CD(X-1)=15
End If
End If
Else
If COD=2
Else
If CC>EH
Inc CD(X-1)
If CD(X-1)=16
CD(X-1)=0
End If
End If
End If
End If
Exit
End If
Next CC
End If
Next X
UCODE$=""
For X=1 To 12
R=CD(X)
Gosub VR
UCODE$=UCODE$+RC$
Next X
D=CD(9)*16^3+CD(10)*16^2+CD(11)*16+CD(12) mod 16
Locate 0,5 : Print "Entschlüsselter Code : $";UCODE$;" Hex :";Hex$(D,4);" = Dezimal : ";D
If COD=1 : KEY=5 : End If
If COD=0 : KEY=6 : End If
If COD=2 : KEY=7 : End If
Open Out 1,DC$+Upper$(CODE$)
Print #1,Chr$(10)+" codierte Explodercodes für SonyPSX Games "+Chr$(10);
Print #1," decodiert mit AMOS by J.F. from SATANIC"+Chr$(10);
Print #1," ----------------------------------------"+Chr$(10)+Chr$(10);
Print #1," Codiert: $"+Upper$(CODE$)+" Codierung: "+Str$(KEY)-" "+Chr$(10);
Print #1," Decodiert: $"+UCODE$+Chr$(10)+Chr$(10);
Close 1
Goto N
Else
Locate 0,5 : Print "Ungültige Anzahl."
Goto N
End If
Else
N:
Locate 0,6 : Print "Nochmal? j/n: "
Repeat
I$=Inkey$
Until I$<>""
If I$<>""
If Upper$(I$)="J"
Goto NOCHMAL
Else
End
End If
Else
End
End If
End If
VL:
If R$="0" : R=0 : End If
If R$="1" : R=1 : End If
If R$="2" : R=2 : End If
If R$="3" : R=3 : End If
If R$="4" : R=4 : End If
If R$="5" : R=5 : End If
If R$="6" : R=6 : End If
If R$="7" : R=7 : End If
If R$="8" : R=8 : End If
If R$="9" : R=9 : End If
If R$="A" : R=$A : End If
If R$="B" : R=$B : End If
If R$="C" : R=$C : End If
If R$="D" : R=$D : End If
If R$="E" : R=$E : End If
If R$="F" : R=$F : End If
Return
VR:
If R=0 : RC$="0" : End If
If R=1 : RC$="1" : End If
If R=2 : RC$="2" : End If
If R=3 : RC$="3" : End If
If R=4 : RC$="4" : End If
If R=5 : RC$="5" : End If
If R=6 : RC$="6" : End If
If R=7 : RC$="7" : End If
If R=8 : RC$="8" : End If
If R=9 : RC$="9" : End If
If R=$A : RC$="A" : End If
If R=$B : RC$="B" : End If
If R=$C : RC$="C" : End If
If R=$D : RC$="D" : End If
If R=$E : RC$="E" : End If
If R=$F : RC$="F" : End If
Return
V3:
Data 0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1
V4:
Data $A,$D,$C,$F,$E,1,0,3,2,5,4,7,6,9,8,$B
V5:
Data $B,$C,$D,$E,$F,0,1,2,3,4,5,6,7,8,9,$A
V6:
Data 9,$E,$F,$C,$D,2,3,0,1,6,7,4,5,$A,$B,8
V7:
Data $B,$C,$D,$E,$F,0,1,2,3,4,5,6,7,8,9,$A
V8:
Data 8,$F,$E,$D,$C,3,2,1,0,7,6,5,4,$B,$A,9
V9:
Data $B,$C,$D,$E,$F,0,1,2,3,4,5,6,7,8,9,$A
V10:
Data $F,8,9,$A,$B,4,5,6,7,0,1,2,3,$C,$D,$E
V11:
Data $B,$C,$D,$E,$F,0,1,2,3,4,5,6,7,8,9,$A
V12:
Data $E,9,8,$B,$A,5,4,7,6,1,0,3,2,$D,$C,$F
C3:
Data 5,6,7,8,9,$A,$B,$C,$D,$E,$F,0,1,2,3,4
C4:
Data 7,8,9,$A,$B,$C,$D,$E,$F,0,1,2,3,4,5,6
C5:
Data 4,5,6,7,8,9,$A,$B,$C,$D,$E,$F,0,1,2,3
C6:
Data 2,3,4,5,6,7,8,9,$A,$B,$C,$D,$E,$F,0,1
C7:
Data 3,4,5,6,7,8,9,$A,$B,$C,$D,$E,$F,0,1,2
C8:
Data 1,2,3,4,5,6,7,8,9,$A,$B,$C,$D,$E,$F,0
C9:
Data 3,4,5,6,7,8,9,$A,$B,$C,$D,$E,$F,0,1,2
C10:
Data 2,3,4,5,6,7,8,9,$A,$B,$C,$D,$E,$F,0,1
C11:
Data 3,4,5,6,7,8,9,$A,$B,$C,$D,$E,$F,0,1,2
C12:
Data 3,4,5,6,7,8,9,$A,$B,$C,$D,$E,$F,0,1,2
S3:
Data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
S4:
Data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
Data 0
S5:
Data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
Data 0
S6:
Data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
Data 0
S7:
Data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
Data 0
S8:
Data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
Data 0
S9:
Data 0,0,0,$0,0,0,0,0,0,0,0,0,$F,0,0,0
Data 0
S10:
Data 0,$F,0,0,0,$0,0,0,0,0,0,0,0,0,0,0
Data 0
S11:
Data 0,0,$F,$0,0,0,0,0,0,0,0,0,0,0,0,0
Data 0
S12:
Data 0,0,0,$F,0,$0,0,0,0,0,0,0,0,0,0,0
Data 0